草庐IT

Java jackson org.codehaus.jackson.map.exc.UnrecognizedPropertyException

全部标签

java - 仅本地图值不存在时才创建并放置一个 map 值,并获取它 : thread-safe implementation

使此代码段线程安全的最佳方法是什么?privatestaticfinalMapMAP=newHashMap();publicstaticBputIfNeededAndGet(Akey){Bvalue=MAP.get(key);if(value==null){value=buildB(...);MAP.put(key,value);}returnvalue;}privatestaticBbuildB(...){//business,canbequitelong}以下是我能想到的几个解决方案:我可以使用ConcurrentHashMap,但如果我很好理解,它只是使原子put和get操作线程

java - 使用 Jackson 将数组元素添加到 JSON

我有一个看起来像这样的JSON[{"itemLabel":"SocialMedia","itemValue":90},{"itemLabel":"Blogs","itemValue":30},{"itemLabel":"TextMessaging","itemValue":60},{"itemLabel":"Email","itemValue":90},]我想将所有这些对象放入一个数组中,以便在我的代码中更轻松地对其进行操作。因此我想做类似的事情[{"data":[{"itemLabel":"SocialMedia","itemValue":90},{"itemLabel":"Blog

java - 使用 Jackson 将 Java 对象序列化为 JSON 时抑制包装器对象

我有一个以JSON格式返回列表的Web服务。它使用Jackson将JavaPOJO列表映射到JSON。问题是JSON表示在数组周围有一个包装器对象,而我只想要数组。即,我得到这个:{"optionDtoList":[{...},...,{...}]}当我真正想要的是:[{...},...,{...}]我是直接序列化JavaList;我没有用包装对象包装List并序列化包装对象。似乎是Jackson添加了JavaScript包装器对象。我假设我可以在POJO上使用一些注释来抑制包装器对象,但我没有看到它。解决方案的约束我想在服务端解决这个问题,而不是剥离客户端的包装。客户端是一个jQue

Java 泛型 - 实现高阶函数,如 map

我决定用Java编写一些常见的高阶函数(map、filter、reduce等),它们通过泛型实现类型安全,但我在一个特定函数中遇到通配符匹配问题。为了完整起见,仿函数接口(interface)是这样的:/***Theinterfacecontainingthemethodusedtomapasequenceintoanother.*@paramThetypeoftheelementsinthesourcesequence.*@paramThetypeoftheelementsinthedestinationsequence.*/publicinterfaceTransformation

java - Jackson 2.1 多态反序列化 : How to populate type field on pojo?

我正在从REST服务中提取类别和项目树。类别具有包含类别和/或项目列表的“子”属性。它们的类型在“种类”字段中指定。Jackson的多态类型处理非常好,一切都按预期工作,除了一个小问题:“kind”字段本身没有填充。有没有一种简单的方法可以将这些数据放到pojos上?我希望不必编写自定义反序列化程序。这是类别和项目的基类。这两个子类添加了几个标量场,不是很有趣。@JsonIgnoreProperties(ignoreUnknown=true)@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,p

java - JDBI,使用 sql 查询检索数据到自定义对象(构造函数)而不是 Map

所以当我们使用JDBI从数据库中查询时,它会将它放入一个Map中。类型。我想把它作为我的自定义对象(构造函数)而不是Map.DBIdbi=establishConnection(url,userName,passWord);Handlehandle=dbi.open();List>rs=handle.select("select*fromsometable");相反,我想使用:Listrs=handle.select("select*fromsometable");在哪里customizedObject类是一个包含所有列属性的对象。有什么办法吗?我找到了一些相关文档,但我无法真正理解实

java - @JsonInclude(Include.NON_NULL) 不工作/ jackson 序列化空值

我已经在类/pojo上放置了注释并配置了映射器,但它仍然序列化null值我正在使用Hibernate4.3.7Final和Jackson2.4.4。这些集合是延迟加载Pojo:删除了getter和setter@JsonInclude(Include.NON_NULL)@Entity@TablepublicclassSchool{@Id@GeneratedValueprivateintid;@OneToMany(cascade=CascadeType.ALL,fetch=FetchType.LAZY)privateListstudents;@OneToMany(cascade=Casca

java - jackson 忽略外部库中父类(super class)的所有属性

我正在使用ORM进行开发,我在其中扩展基orm类以创建表。例如:publicclassPersonextendsDbItem{@JsonIgnoreprivateStringindex;privateStringfirstName;privateStringlastName;}问题是,当我使用ObjectMapper进行序列化时,它会尝试序列化DbItem类的成员。有什么简单的方法可以防止这种情况发生吗?例如带有注释。我看过一个类似的问题Jacksonserialization:howtoignoresuperclassproperties但我希望它可以做得更简单,我不确定我是否可以这

java - Java扩展ArrayList时如何添加map和filter?

我正在尝试创建一个扩展ArrayList的table类。在其中,我希望能够创建一个map方法,该方法采用lambda表达式并返回一个包含映射值的新table。我还想用filter来做到这一点。我经常使用map和过滤器,我不喜欢一遍又一遍地输入整个内容。publicabstractclassTableextendsArrayList{//alotofotherstuff.publicTablemap(/*WHATDOIPUTHERE?*/mapper){returnthis.stream().map(mapper).collect(/*WHATDOIPUTHERE?*/);}public

java - 使用流对内部对象的 Map 属性进行分组?

我正在学习Java8-Java11,我得到了一个要转换为java-streams的代码.我有以下类(class):classResource{Listcapabilities;}classCapability{Stringnamespace;Mapattributes;}我有一个资源流,我想将其所有功能属性从两个不同的命名空间(“a”、“b”)提取到Map>我确定没有重复的键。我使用map、flatMap做了很多尝试,但是对于这些,我无法保留主要资源对象的引用。使用java9的新功能我可以进步,但我被困在下面的代码中,在那里我能够返回所有属性,但在一个集合中。我还不能按功能命名空间进行